package main

import (
	"fmt"
)

/**
执行用时：4 ms, 在所有 Go 提交中击败了94.70%的用户
内存消耗：3.9 MB, 在所有 Go 提交中击败了96.42%的用户
 */
func convert(s string, n int) string {
	if n == 1 {
		return s
	}
	res := make([]byte, 0, len(s))
	d := 2 * n - 2
	for i := 0; i < n; i++ {
		if i == 0 || i == n - 1 {
			for j := i; j < len(s); j += d {
				res = append(res, s[j])
			}
		} else {
			for j, k := i, d - i; j < len(s) || k < len(s); j, k = j + d, k + d {
				if j < len(s) {
					res = append(res, s[j])
				}
				if k < len(s) {
					res = append(res, s[k])
				}
			}
		}
	}
	return string(res)
}

func main() {
	fmt.Println(convert("PAYPALISHIRING", 3))
}
